Computer system providing virtual computing sessions through virtual delivery agent leasing with enhanced power savings and connectivity and related methods

ABSTRACT

A computing device may include a memory and a processor cooperating with the memory to generate connection leases for a plurality of client devices. The client devices may be configured to request virtual computing sessions from virtual delivery appliances in accordance with respective connection leases. Virtual delivery appliances within a first group may be configured to operate during off-peak hours, and virtual delivery appliances within a second group different than the first group may be configured not to operate during the off-peak hours. The processor may generate each connection lease to include at least one of the virtual delivery appliances from the first group.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.16/241,047 filed Jan. 7, 2019, which is hereby incorporated herein inits entirety by reference.

BACKGROUND

Traditionally, personal computers include combinations of operatingsystems, applications, and user settings, which are each managedindividually by owners or administrators on an ongoing basis. However,many organizations are now using desktop virtualization to provide amore flexible option to address the varying needs of their users. Indesktop virtualization, a user's computing environment (e.g., operatingsystem, applications, and/or user settings) may be separated from theuser's physical computing device (e.g., smartphone, laptop, desktopcomputer). Using client-server technology, a “virtualized desktop” maybe stored in and administered by a remote server, rather than in thelocal storage of the client computing device.

There are several different types of desktop virtualization systems. Asan example, Virtual Desktop Infrastructure (VDI) refers to the processof running a user desktop inside a virtual machine that resides on aserver. VDI and other server-based desktop virtualization systems mayprovide personalized desktops for each user, while allowing forcentralized management and security. Servers in such systems may includestorage for virtual desktop images and system configuration information,as well as software components to provide the virtual desktops and allowusers to interconnect to them. For example, a VDI server may include oneor more hypervisors (virtual machine managers) to create and maintainmultiple virtual machines, software to manage the hypervisor(s), aconnection broker, and software to provision and manage the virtualdesktops.

Desktop virtualization systems may be implemented using a singlevirtualization server or a combination of servers interconnected as aserver grid. For example, a cloud computing environment, or cloudsystem, may include a pool of computing resources (e.g., desktopvirtualization servers), storage disks, networking hardware, and otherphysical resources that may be used to provision virtual desktop orapplication sessions, along with additional computing devices to providemanagement and customer portals for the cloud system.

SUMMARY

A computing device may include a memory and a processor cooperating withthe memory to generate connection leases for a plurality of clientdevices. The client devices may be configured to request virtualcomputing sessions from virtual delivery appliances in accordance withrespective connection leases. Virtual delivery appliances within a firstgroup may be configured to operate during off-peak hours, and virtualdelivery appliances within a second group different than the first groupmay be configured not to operate during the off-peak hours. Theprocessor may generate each connection lease to include at least one ofthe virtual delivery appliances from the first group.

In an example embodiment, each of the connection leases may comprise anordered list of virtual delivery appliances, and each client computingdevice may be configured to sequentially request virtual computingsessions from the virtual delivery appliances in its respective orderedlist from a highest order to a lowest order until a virtual computingsession is established. More particularly, the lowest order virtualdelivery appliance in the ordered list may be from the first group ofvirtual delivery appliances. In accordance with another example, eachclient computing device may have a respective user account associatedtherewith, and the processor may generate connection leases for clientcomputing devices having a same user account associated therewith thatshare a same ordered list of virtual delivery appliances.

In one embodiment, each of the connection leases may further include atleast one virtual delivery appliance from the second group. Furthermore,the virtual delivery appliances within the first group may be furtherconfigured to operate in an always-on mode. By way of example, 20% orless of the virtual delivery appliances may be assigned to the firstgroup.

The virtual computing sessions may comprise virtual machine sessions,and the virtual delivery appliances may be configured to connectmultiple client computing devices to each virtual machine session, forexample. In other example implementations, the virtual computingsessions may comprise at least one of virtual desktop sessions andvirtual application sessions.

A related method may include generating connection leases for aplurality of client devices at a computing device, with the clientdevices being configured to request virtual computing sessions fromvirtual delivery appliances in accordance with respective connectionleases. Virtual delivery appliances within a first group may beconfigured to operate during off-peak hours, and virtual deliveryappliances within a second group different than the first group may beconfigured not to operate during the off-peak hours. Furthermore,generating may comprise generating each connection lease to include atleast one of the virtual delivery appliances from the first group.

A related non-transitory computer-readable medium may havecomputer-executable instructions for causing a processor to performsteps including generating connection leases for a plurality of clientdevices at a computing device, with the client devices being configuredto request virtual computing sessions from virtual delivery appliancesin accordance with respective connection leases. Virtual deliveryappliances within a first group may be configured to operate duringoff-peak hours, and virtual delivery appliances within a second groupdifferent than the first group may be configured not to operate duringthe off-peak hours. Furthermore, generating may comprise generating eachconnection lease to include at least one of the virtual deliveryappliances from the first group.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a network environment of computing devicesin which various aspects of the disclosure may be implemented.

FIG. 2 is a block diagram of a computing device useful for practicing anembodiment of the client machines or the remote machines illustrated inFIG. 1 .

FIG. 3 is a schematic block diagram of a computer system providingconnections to virtual computing sessions using virtual delivery agent(VDA) leases having at least one VDA operating during off-peak hours.

FIG. 4 is a schematic block diagram of an example implementation of thesystem of FIG. 3 .

FIG. 5A is a schematic block diagram illustrating a conventionalapproach to VDA assignment for connecting client computing devices tovirtual computing sessions.

FIG. 5B is a chart of example lease assignments for respective useraccounts for the VDAs of FIG. 5A, along with connection probabilitiesresulting from the given lease assignments.

FIG. 6A is a schematic block diagram illustrating an example grouping ofavailable VDAs for an embodiment of the system of FIG. 3 .

FIG. 6B is a chart of example lease assignments for respective useraccounts for the VDAs of FIG. 6A, along with connection probabilitiesresulting from the given lease assignments.

FIG. 7 is a table comparing connection probabilities for example leaseconfigurations with and without VDAs designated for operating duringoff-peak hours.

FIG. 8 is a flow diagram illustrating method aspects associated with thesystem of FIG. 3 .

DETAILED DESCRIPTION

The present description is made with reference to the accompanyingdrawings, in which example embodiments are shown. However, manydifferent embodiments may be used, and thus the description should notbe construed as limited to the particular embodiments set forth herein.Like numbers refer to like elements throughout, and prime notation maybe used to indicate similar elements in different embodiments.

As will be appreciated by one of skill in the art upon reading thefollowing disclosure, various aspects described herein may be embodiedas a device, a method or a computer program product (e.g., anon-transitory computer-readable medium having computer executableinstruction for performing the noted operations or steps). Accordingly,those aspects may take the form of an entirely hardware embodiment, anentirely software embodiment, or an embodiment combining software andhardware aspects.

Furthermore, such aspects may take the form of a computer programproduct stored by one or more computer-readable storage media havingcomputer-readable program code, or instructions, embodied in or on thestorage media. Any suitable computer readable storage media may beutilized, including hard disks, CD-ROMs, optical storage devices,magnetic storage devices, and/or any combination thereof.

Referring initially to FIG. 1 , a non-limiting network environment 101in which various aspects of the disclosure may be implemented includesone or more client machines 102A-102N, one or more remote machines106A-106N, one or more networks 104, 104′, and one or more appliances108 installed within the computing environment 101. The client machines102A-102N communicate with the remote machines 106A-106N via thenetworks 104, 104′.

In some embodiments, the client machines 102A-102N communicate with theremote machines 106A-106N via an intermediary appliance 108. Theillustrated appliance 108 is positioned between the networks 104, 104′and may also be referred to as a network interface or gateway. In someembodiments, the appliance 108 may operate as an application deliverycontroller (ADC) to provide clients with access to business applicationsand other data deployed in a datacenter, the cloud, or delivered asSoftware as a Service (SaaS) across a range of client devices, and/orprovide other functionality such as load balancing, etc. In someembodiments, multiple appliances 108 may be used, and the appliance(s)108 may be deployed as part of the network 104 and/or 104′.

The client machines 102A-102N may be generally referred to as clientmachines 102, local machines 102, clients 102, client nodes 102, clientcomputers 102, client devices 102, computing devices 102, endpoints 102,or endpoint nodes 102. The remote machines 106A-106N may be generallyreferred to as servers 106 or a server farm 106. In some embodiments, aclient device 102 may have the capacity to function as both a clientnode seeking access to resources provided by a server 106 and as aserver 106 providing access to hosted resources for other client devices102A-102N. The networks 104, 104′ may be generally referred to as anetwork 104. The networks 104 may be configured in any combination ofwired and wireless networks.

A server 106 may be any server type such as, for example: a file server;an application server; a web server; a proxy server; an appliance; anetwork appliance; a gateway; an application gateway; a gateway server;a virtualization server; a deployment server; a Secure Sockets Layer orTransport Layer Security (TLS) Virtual Private Network (SSL VPN) server;a firewall; a web server; a server executing an active directory; acloud server; or a server executing an application acceleration programthat provides firewall functionality, application functionality, or loadbalancing functionality.

A server 106 may execute, operate or otherwise provide an applicationthat may be any one of the following: software; a program; executableinstructions; a virtual machine; a hypervisor; a web browser; aweb-based client; a client-server application; a thin-client computingclient; an ActiveX control; a Java applet; software related to voiceover internet protocol (VoIP) communications like a soft IP telephone;an application for streaming video and/or audio; an application forfacilitating real-time-data communications; a HTTP client; a FTP client;an Oscar client; a Telnet client; or any other set of executableinstructions.

In some embodiments, a server 106 may execute a remote presentationservices program or other program that uses a thin-client or aremote-display protocol to capture display output generated by anapplication executing on a server 106 and transmit the applicationdisplay output to a client device 102.

In yet other embodiments, a server 106 may execute a virtual machineproviding, to a user of a client device 102, access to a computingenvironment. The client device 102 may be a virtual machine. The virtualmachine may be managed by, for example, a hypervisor, a virtual machinemanager (VMM), or any other hardware virtualization technique within theserver 106.

In some embodiments, the network 104 may be: a local-area network (LAN);a metropolitan area network (MAN); a wide area network (WAN); a primarypublic network 104; and a primary private network 104. Additionalembodiments may include a network 104 of mobile telephone networks thatuse various protocols to communicate among mobile devices. For shortrange communications within a wireless local-area network (WLAN), theprotocols may include 802.11, Bluetooth, and Near Field Communication(NFC).

FIG. 2 depicts a block diagram of a computing device 100 useful forpracticing an embodiment of client devices 102, appliances 108 and/orservers 106. The computing device 100 includes one or more processors103, volatile memory 122 (e.g., random access memory (RAM)),non-volatile memory 128, user interface (UI) 123, one or morecommunications interfaces 118, and a communications bus 150.

The non-volatile memory 128 may include: one or more hard disk drives(HDDs) or other magnetic or optical storage media; one or more solidstate drives (SSDs), such as a flash drive or other solid-state storagemedia; one or more hybrid magnetic and solid-state drives; and/or one ormore virtual storage volumes, such as a cloud storage, or a combinationof such physical storage volumes and virtual storage volumes or arraysthereof.

The user interface 123 may include a graphical user interface (GUI) 124(e.g., a touchscreen, a display, etc.) and one or more input/output(I/O) devices 126 (e.g., a mouse, a keyboard, a microphone, one or morespeakers, one or more cameras, one or more biometric scanners, one ormore environmental sensors, and one or more accelerometers, etc.).

The non-volatile memory 128 stores an operating system 115, one or moreapplications 116, and data 117 such that, for example, computerinstructions of the operating system 115 and/or the applications 116 areexecuted by processor(s) 103 out of the volatile memory 122. In someembodiments, the volatile memory 122 may include one or more types ofRAM and/or a cache memory that may offer a faster response time than amain memory. Data may be entered using an input device of the GUI 124 orreceived from the I/O device(s) 126. Various elements of the computer100 may communicate via the communications bus 150.

The illustrated computing device 100 is shown merely as an exampleclient device or server, and may be implemented by any computing orprocessing environment with any type of machine or set of machines thatmay have suitable hardware and/or software capable of operating asdescribed herein.

The processor(s) 103 may be implemented by one or more programmableprocessors to execute one or more executable instructions, such as acomputer program, to perform the functions of the system. As usedherein, the term “processor” describes circuitry that performs afunction, an operation, or a sequence of operations. The function,operation, or sequence of operations may be hard coded into thecircuitry or soft coded by way of instructions held in a memory deviceand executed by the circuitry. A processor may perform the function,operation, or sequence of operations using digital values and/or usinganalog signals.

In some embodiments, the processor can be embodied in one or moreapplication specific integrated circuits (ASICs), microprocessors,digital signal processors (DSPs), graphics processing units (GPUs),microcontrollers, field programmable gate arrays (FPGAs), programmablelogic arrays (PLAs), multi-core processors, or general-purpose computerswith associated memory.

The processor 103 may be analog, digital or mixed-signal. In someembodiments, the processor 103 may be one or more physical processors,or one or more virtual (e.g., remotely located or cloud) processors. Aprocessor including multiple processor cores and/or multiple processorsmay provide functionality for parallel, simultaneous execution ofinstructions or for parallel, simultaneous execution of one instructionon more than one piece of data.

The communications interfaces 118 may include one or more interfaces toenable the computing device 100 to access a computer network such as aLocal Area Network (LAN), a Wide Area Network (WAN), a Personal AreaNetwork (PAN), or the Internet through a variety of wired and/orwireless connections, including cellular connections.

In described embodiments, the computing device 100 may execute anapplication on behalf of a user of a client device. For example, thecomputing device 100 may execute one or more virtual machines managed bya hypervisor. Each virtual machine may provide an execution sessionwithin which applications execute on behalf of a user or a clientdevice, such as a hosted desktop session. The computing device 100 mayalso execute a terminal services session to provide a hosted desktopenvironment. The computing device 100 may provide access to a remotecomputing environment including one or more applications, one or moredesktop applications, and one or more desktop sessions in which one ormore applications may execute.

Additional descriptions of a computing device 100 configured as a clientdevice 102 or as a server 106, or as an appliance intermediary to aclient device 102 and a server 106, and operations thereof, may be foundin U.S. Pat. Nos. 9,176,744 and 9,538,345, which are incorporated hereinby reference in their entirety. The '744 and '345 patents are bothassigned to the current assignee of the present disclosure.

Turning to FIG. 3 and the flow diagram 80 of FIG. 8 , a system 30providing client computing devices access to virtual computing sessionsthrough connection leasing, yet with enhanced power saving capabilitiesand high connection probabilities, is now described. The system 30illustratively includes a plurality of client computing devices 31 a, 31b (e.g., smartphones, tablet computers, laptop computers, desktopcomputers, etc.), and a plurality of host computing devices 32 a-32 ceach configured to provide virtual computing sessions 33 a-33 c for theclient computing devices. Each host computing device 32 a-32 cillustratively includes a virtual delivery agent (VDA) 34 a-34 cassociated therewith configured to connect the client computing deviceswith the virtual computing sessions. While only two client computingdevices 31 a, 31 b and three hosting computing devices 32 a-32 c areshown in the illustrated example, it will be appreciated that any numberof such computing devices may be used in different embodiments.Moreover, it will also be appreciated that the host computing devices 32a-32 c and VDAs 34 a-34 c may be implemented in the cloud and/oron-premises in different embodiments.

By way of background, Citrix XenApp and XenDesktop are products whichallow client computing devices to remotely access virtual computingsessions, such as virtual desktop sessions and virtual applicationsessions. In some embodiments, multiple virtual computing sessions maybe hosted by a virtual machine. By way of example, the virtualapplication sessions may provide access to shared computingapplications, including hosted applications, Web/Software as a Service(SaaS) applications, etc. Virtual desktop sessions may include bothshared applications and hosted operating system components. In the caseof XenApp and XenDesktop, a VDA enables connections to the applicationsand desktops, and is typically installed on the server/machine that runsthe XenApp and/or XenDesktop virtual application/desktop sessions forthe user (although it may be installed on a different machine in someimplementations). The VDA enables the machines to register with deliverycontrollers and manage the connection to a user device. While thetechniques described herein may be implemented using products such asXenApp and XenDesktop, for example, it will be appreciated that they maybe implemented using other computing systems as well.

Connection leasing is a way to provide relatively high availability byauthorizing client computing devices to connect to one of many VDAs viaa signed lease document. However, one challenge is ensuring that theclient computing devices can connect on nights and weekends and/orholidays (i.e., off-peak hours) when most VDAs are powered off toprovide power savings. The present approach provides a technicalsolution to this problem of providing desired connection probabilitiesthrough VDA leases yet while still allowing for VDA power cycling duringoff-peak times to advantageously provide significant power savings tothereby improve the operation of a virtualized computing environment.

Beginning at Block 81, the host computing devices 32 a-32 c providevirtual computing sessions 33 a-33 c for the client computing devices 31a, 31 b, at Block 82. However, a first group of the VDAs (here includingonly the VDA 34 c) is configured to operate during off-peak hours, whileVDAs within a second group different than the first group (here the VDAs34 a-34 b) are configured not to operate during the off-peak hours, atBlock 83. That is, the VDAs 34 a-34 b (and optionally the host computingdevices 32 a, 32 b they run on) are configured to power off or run in areduced power mode during off-peak hours, which may include weekdaysoutside of normal business hours (e.g., after 5 PM and before 9 AM), andall day on holidays and weekends, for example. Of course, off-peak hoursmay be selected differently for different entities or organizations indifferent embodiments.

Yet, the VDAs within the first group (i.e., the VDA 34 c in the presentexample) are configured to run during some or all of the off-peak hours,and may optionally be run during some or all of the peak hours. That is,VDAs in the first group could be configured to operate (i.e., in anormal operational mode) only during off-peak hours, or they may beconfigured to also run during some or all of the peak hours. The VDAs 34a-34 c connect the client computing devices 31 a, 31 b to the virtualcomputing sessions 33 a-33 c as requested in accordance with the VDAleases, and as the VDAs are available based upon whether they are in thefirst or second group and whether it is peak or off-peak hours, at Block84. The method of FIG. 8 illustratively concludes at Block 85. In anexample embodiment, VDA leases may be assigned to the client computingdevices 31 a, 31 b by brokers or other network administrator computerswhen the client computing device registers with the system 30, forexample. In one example configuration, the VDAs in the first group maybe operated in an “always-on” fashion, providing full operationalcapabilities twenty-four hours a day.

Furthermore, the client computing devices 31 a, 31 b are configured torequest virtual computing sessions from the VDAs 34 a-34 c in accordancewith respective VDA leases, and each VDA lease includes at least one ofthe VDAs from the first group. In the illustrated example, the clientcomputing device 31 a is assigned a VDA lease including the VDAs 34 b(second/peak group) and 34 c (first/off-peak group), while the clientcomputing device 31 b is assigned a VDA lease including the VDAs 34 a(second/peak group) and 34 c (first/off-peak group).

Referring additionally to FIG. 4 , in some implementations each of theVDA leases may include an ordered list of VDAs, with each clientcomputing device 31 a, 31 b being configured to sequentially requestvirtual computing sessions from the VDAs 34 a-34 c in its respectiveordered list from a highest order to a lowest order until a virtualcomputing session is established. Furthermore, each of the clientcomputing devices 31 a, 31 b has a respective user account associatedtherewith, and in the present example the client computing devices havea same user account (User Account A) associated therewith, and theyshare the same ordered list of VDAs. For example, the client computingdevice 31 a could be User A's laptop computer, while the clientcomputing device 31 b is User A's smartphone, etc.

In the present case, the ordered list of VDAs within the VDA leaseincludes, in order from highest ranked to lowest ranked: (1) VDA 34 a(peak only); (2) VDA 34 b (peak only); and (3) VDA 34 c (always-on).Thus, in this example, the client computing devices 31 a, 31 b attemptto establish virtual computing sessions with the VDA 34 a, and if thatis unsuccessful then with VDA 34 b, and if that is unsuccessful thenfinally with VDA 34 c. This is the case shown in the illustratedexample, in which the last VDA 34 c in the ordered list connects theclient computing device 31 a with a virtual computing session 33 c. Thisis the scenario that would occur during off-peak hours (when the VDAs 34a-34 b are powered down or in a low power state), or during peak hourswhen the VDAs 34 a-34 b are overloaded, a connection is down, etc.

Note that there is at least one peak only VDA (here the VDAs 34 a, 34 b)in the ordered list, and at least one always-on VDA (here the VDA 34 c),which in this example is positioned at the end of the ordered list.Positioning the off-peak/always-on VDA at the end of the ordered listmay be advantageous in that it provides a more even distribution ofprocessing resources over time, as the peak only VDAs 34 a, 34 b willreceive more traffic during peak hours, and the always-on VDA 34 c willreceive more traffic during off-peak hours. However, it will beappreciated that the off-peak/always-on VDAs need not be positioned atthe end of the ordered list in all embodiments. Moreover, any number ofVDAs from the peak/off-peak groups may be included in the VDA leases indifferent embodiments. It should also be noted that different VDA leases(with different ordered lists) may be assigned to different useraccounts, which provides a passive load balancing approach sincedifferent client computing devices will initially look to different VDAsfor a virtual computing session.

Further details on connecting client computing devices to virtualcomputing sessions through VDAs using an ordered list approach are setforth in application Ser. No. 16/194,823 filed Nov. 20, 2018, now U.S.Pat. No. 11,115,478 which is also assigned to the present Applicant andis hereby incorporated herein in its entirety by reference.

The foregoing will be further understood with reference to variousimplementation examples demonstrating the enhanced connectionprobabilities that may be obtained using the above-described VDA leasingapproach. Before describing the examples, the following background ontypical approaches for brokering virtual computing sessions is nowprovided. The brokering of a pooled desktop is typically achieved with aprobabilistic approach to guarantee a certain level of availability(i.e., a successful connection to a published desktop), for instancethree nines (99.999%), four nines (99.9999%), etc. In this context, thisis why a Connection Lease (CL) contains multiple VDAs.

Upon request to connect to a pooled desktop, in the case of the CitrixWorkspace App (CWA), it will try to connect to the VDAs from the CL listof VDAs, one-by-one until a VDA is available (meaning powered on and notin use). When the end-user launches a desktop (from a Delivery Groupcontaining pooled machines), the CWA will attempt to connect to a VDA bydoing a quick ICA/CGP ping to check if it is available. If not, the CWAwill go to the next one in the list of VDAs and so on. For cost reasons,only a subset of the available VDAs are typically powered on (and idle)at a specific time—taking advantage of the XenApp/XenDesktop Smart ScaleFeature. Typically, customers may power on only 10-20% of available VDAson nights and weekends, when usage is low.

In such a scenario, if we distribute VDAs evenly in connection leases,we can calculate the probability of connecting successfully. Assumingthe probability for the VDAs in the CL list to be available is P_(a),then the probability to connect successfully to a VDA (by tryingsuccessively) is defined by the following recurrence relation (where nis the number of VDAs to try to connect to):P _(n+1) =P _(n)+(1−P _(n))×P _(a),With P₁=P_(a).This can be changed to:P _(n+1) =P _(n)×(1−P _(a))+P _(a),which resolves to:P _(n)=1−(1−P _(a))^(n).A quick calculation shows how many VDAs (=n) are required in the CL listto guarantee two nines, three nines, etc. probability to connectsuccessfully to a VDA. The following table assumes that only 20% of theavailable VDAs are powered on (and available/idle), which translates toP_(a)=0.2

Number of VDAs Probability of finding a VDA to connect to 1 0.2 110.914101 21 0.990777 31 0.999010 42 0.999915 52 0.999991It will be appreciated that achieving even three 9's reliabilityrequires a large number of VDAs in every lease (i.e., 30+). This couldhave a large impact on performance as leases would be large, and the CWAmay have to try many connections before succeeding.

An example of the typical approach to issuing leases in a system 50Awith twenty available VDAs, all having an equal probability of beingpowered on, and the VDAs being distributed evenly to the leases, isshown in FIG. 5A and the associated chart 50B of FIG. 5B. This resultsin a 20% probability for each VDA of being powered on at any given time.For the case of four users, each user will have approximately a 95%connection probability.

Instead of assuming that all VDAs have the same probability of beingpowered on, the present approach pre-selects those that will remain onduring off-peak hours (or always-on). Continuing with the above example,the 20% of VDAs that stay powered on during nights and weekends mayadvantageously be selected ahead of time. Then, rather than distributingVDAs evenly in the leases, the leases are made up of a mix of VDAspowered on during peak periods (to ensure adequate load balancing duringhigh-usage periods), and also VDAs from the preselected 20% (to ensureavailability during low-usage periods), as noted above. Of course,different percentages of off-peak/always-on VDAs may be used indifferent embodiments.

Turning now to FIGS. 6A-6B, an example implementation of a system 60Ausing the present approach where 10% of the available VDAs arepre-selected for operations during off-peak hours is now described. Moreparticularly, in this example VDAs 1-18 are pre-selected for peak onlyoperation, while the VDAs 19-20 (i.e., 2 of the available 20 VDAs, or10%) are pre-selected for off-peak operation (here always-on operation).As described above, when issuing leases, one of the always-on VDAs isincluded in every user's lease, as shown in the chart 60B of FIG. 6B. Inthe peak only group, there is <1% probability of each VDA being poweredon at a given time, but in the always-on group there is >99% probabilityof these two VDAs (VDA 19 and 20) being powered on at any given time. Asseen in FIG. 6B, the result is that for each user's VDA lease, there isa >99% probability that the user will be connected to a virtualcomputing session by including one of the always-on VDAs in the lease, a4%+ improvement over the approach noted above with the same number ofVDAs and users but no pre-selection of the always-on VDAs. Of course, itwill be appreciated that more always-on VDAs could be designated andassigned to user leases to increase the probability of connection evenhigher, but at the expense of some power savings, so the appropriateamount of VDAs to be pre-selected for a given application may bedifferent. As a general guide, 20% or less of the available VDAs may bepre-selected for off-peak operation in a typical application, but ahigher percentage may be chosen in some cases as desired.

The present approach to connection leasing plus power management alsoadvantageously applies to pooled VDI (i.e., one user per VM) as well asRDS workloads (multiple users per VM). With RDS, configurations are morecomplicated as multiple users can share the same VM (up to a limit), soa simulation was performed to validate the effectiveness of the presentapproach. The results of the simulation are shown in the table 70 ofFIG. 7 . Assuming 20 VDAs capable of handling 10 users each (for a totalof 200 users), a 10% idle pool, and 5 VDAs in a lease, the probabilityof connection with no pre-selected always-on VDAs is 95.5%, but with asingle pre-selected always-on VDA in each lease the probability rises to97.2%. Similarly, the average number of connection attempts changes from1.27 to 1.41, and the load balancing unevenness changes from 7.26 usersto 7.03 users.

It will therefore be appreciated that, without increasing the number ofVDAs in a lease, the present approach provided for nearly half theconnection failure rate, improved load balancing, and only caused aslight increase in connection time due to a higher number of connectionattempts before finding an unloaded VDA. As noted above, in largerenvironments, it would also be possible to include more than onealways-on VDA in leases to further increase connection probability.

Many modifications and other embodiments will come to the mind of oneskilled in the art having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it isunderstood that the foregoing is not to be limited to the exampleembodiments, and that modifications and other embodiments are intendedto be included within the scope of the appended claims.

That which is claimed is:
 1. A computing device comprising: a memory anda processor cooperating with the memory to generate connection leasesfor a plurality of client devices, the client devices being configuredto request virtual computing sessions from virtual delivery appliancesin accordance with respective connection leases; wherein virtualdelivery appliances within a first group are configured to operateduring off-peak hours, and virtual delivery appliances within a secondgroup different than the first group are configured not to operateduring the off-peak hours; wherein the processor generates eachconnection lease to include at least one of the virtual deliveryappliances from the first group; wherein the processor is furtherconfigured to direct the virtual delivery appliances to establish thevirtual computing sessions based upon the connection leases.
 2. Thecomputing device of claim 1 wherein each of the connection leasescomprises an ordered list of virtual delivery appliances, and whereineach client computing device is configured to sequentially requestvirtual computing sessions from the virtual delivery appliances in itsrespective ordered list from a highest order to a lowest order until avirtual computing session is established.
 3. The computing device ofclaim 2 wherein the lowest order virtual delivery appliance in theordered list is from the first group of virtual delivery appliances. 4.The computing device of claim 2 wherein each client computing device hasa respective user account associated therewith; and wherein theprocessor generates connection leases for client computing deviceshaving a same user account associated therewith that share a sameordered list of virtual delivery appliances.
 5. The computing device ofclaim 1 wherein each of the connection leases further includes at leastone virtual delivery appliance from the second group.
 6. The computingdevice of claim 1 wherein the virtual delivery appliances within thefirst group are further configured to operate in an always-on mode. 7.The computing device of claim 1 wherein 20% or less of the virtualdelivery appliances are assigned to the first group.
 8. The computingdevice of claim 1 wherein the virtual computing sessions comprisevirtual machine sessions, and wherein the virtual delivery appliancesare configured to connect multiple client computing devices to eachvirtual machine session.
 9. The computing device of claim 1 wherein thevirtual computing sessions comprise at least one of virtual desktopsessions and virtual application sessions.
 10. A method comprising:generating connection leases for a plurality of client devices at acomputing device, the client devices being configured to request virtualcomputing sessions from virtual delivery appliances in accordance withrespective connection leases; wherein virtual delivery appliances withina first group are configured to operate during off-peak hours, andvirtual delivery appliances within a second group different than thefirst group are configured not to operate during the off-peak hours;wherein generating comprises generating each connection lease to includeat least one of the virtual delivery appliances from the first group;and directing, at the computing device, the virtual delivery appliancesto establish the virtual computing sessions based upon the connectionleases.
 11. The method of claim 10 wherein each of the connection leasescomprises an ordered list of virtual delivery appliances, and whereineach client computing device is configured to sequentially requestvirtual computing sessions from the virtual delivery appliances in itsrespective ordered list from a highest order to a lowest order until avirtual computing session is established.
 12. The method of claim 11wherein the lowest order virtual delivery appliance in the ordered listis from the first group of virtual delivery appliances.
 13. The methodof claim 11 wherein each client computing device has a respective useraccount associated therewith; and wherein generating further comprisesgenerating connection leases for client computing devices having a sameuser account associated therewith that share a same ordered list ofvirtual delivery appliances.
 14. The method of claim 10 wherein each ofthe connection leases further includes at least one virtual deliveryappliance from the second group.
 15. The method of claim 10 wherein thevirtual delivery appliances within the first group are furtherconfigured to operate in an always-on mode.
 16. A non-transitorycomputer-readable medium having computer-executable instructions forcausing a processor of a computing device to perform steps comprising:generating connection leases for a plurality of client devices, theclient devices being configured to request virtual computing sessionsfrom virtual delivery appliances in accordance with respectiveconnection leases; wherein virtual delivery appliances within a firstgroup are configured to operate during off-peak hours, and virtualdelivery appliances within a second group different than the first groupare configured not to operate during the off-peak hours; whereingenerating comprises generating each connection lease to include atleast one of the virtual delivery appliances from the first group; anddirecting the virtual delivery appliances to establish the virtualcomputing sessions based upon the connection leases.
 17. Thenon-transitory computer-readable medium of claim 16 wherein each of theconnection leases comprises an ordered list of virtual deliveryappliances, and wherein each client computing device is configured tosequentially request virtual computing sessions from the virtualdelivery appliances in its respective ordered list from a highest orderto a lowest order until a virtual computing session is established. 18.The non-transitory computer-readable medium of claim 17 wherein thelowest order virtual delivery appliance in the ordered list is from thefirst group of virtual delivery appliances.
 19. The non-transitorycomputer-readable medium of claim 17 wherein each client computingdevice has a respective user account associated therewith; and whereingenerating further comprises generating connection leases for clientcomputing devices having a same user account associated therewith thatshare a same ordered list of virtual delivery appliances.
 20. Thenon-transitory computer-readable medium of claim 16 wherein each of theconnection leases further includes at least one virtual deliveryappliance from the second group.